
package miagetest.client.shell;

import gestion.GestionnaireRemote;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
 * Fonctions d'obtention de l'EJB du serveur, pour pouvoir dialoguer avec sa base de données
 * @author Alex
 */
public class EJBConnect {

    /**
     * Permet de récupérer le contexte à partir des paramètres d'une connexion à un serveur d'EJB
     * @param serverName le nom du serveur, ex : localhost ou une adresse IP (pas testé)
     * @return
     * @throws NamingException
     */
    private static InitialContext serverConnect(String serverName) throws NamingException
    {
        Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
        props.setProperty("org.omg.CORBA.ORBInitialHost", serverName);
        props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

        return new InitialContext(props);
    }

    /**
     * Permet d'obtenir le gestionnaire Miagetest à partir du contexte du serveur d'EJB
     * @param serverName
     * @return
     * @throws NamingException
     */
    public static GestionnaireRemote getGestionnaire(String serverName) throws NamingException
    {
        InitialContext ctx = serverConnect(serverName);
        GestionnaireRemote gestionnaire = (GestionnaireRemote) ctx.lookup("gestion.GestionnaireRemote");
        return gestionnaire;
    }

}
